package br.ufc.persistencia.comandos;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import br.ufc.persistencia.interfaces.Comando;
import br.ufc.persistencia.model.Municipio;
import br.ufc.persistencia.model.Orgao;
import br.ufc.persistencia.repositorios.RepositorioDespesa;
import br.ufc.persistencia.repositorios.RepositorioMunicipio;
import br.ufc.persistencia.repositorios.RepositorioOrgao;
import br.ufc.persistencia.repositorios.RepositorioReceita;

public class CmdInformacoesGerais implements Comando{

	public String executa(HttpServletRequest request,
			HttpServletResponse response) {
		// TODO Auto-generated method stub
		HttpSession session = request.getSession();
		String cod_municipio = request.getParameter("cod_municipio");
		String cod_orgao = request.getParameter("cod_orgao");
		String ano = request.getParameter("ano");
		

		if(cod_municipio == null || cod_municipio.trim().isEmpty()){
			return "/visualizar_orgaos_municipio.jsp";
		}else if(cod_orgao == null || cod_orgao.trim().isEmpty()){
			return "/visualizar_orgaos_municipio.jsp";
		}else if(ano == null || ano.trim().isEmpty()){
			return "/visualizar_orgaos_municipio.jsp";
		}else{
		Orgao orgao = new Orgao();
		Municipio municipio = new Municipio();
		
		RepositorioOrgao repOrgao = new RepositorioOrgao();
		orgao = repOrgao.buscarOrgaoDoMunicipio(cod_municipio, ano, cod_orgao);
		
		RepositorioDespesa repDespesa = new RepositorioDespesa();
		RepositorioReceita repReceita = new RepositorioReceita();
		RepositorioMunicipio repmunicipio = new RepositorioMunicipio();
		
		orgao.setListaDespesas(repDespesa.listarTodasAsDespesasDoOrgaosDoMunicipio(cod_municipio, cod_orgao, ano));
		
		orgao.setListareceitas(repReceita.listarTodasAsReceitasDoOrgaoDoMunicipio(cod_municipio, cod_orgao, ano));
		
		municipio = repmunicipio.buscarMunicipioPeloCodigo(orgao.getCodigo_municipio());
		
		
		session.setAttribute("cidade", municipio);
		session.setAttribute("orgao", orgao);
		session.setAttribute("totalDespesas", repOrgao.getTotalDespesas(orgao));
		session.setAttribute("totalReceitas", repOrgao.getTotalReceitas(orgao));
		
		return "/informacoes_gerais.jsp";
		}
	}

}
